home *** CD-ROM | disk | FTP | other *** search
Text File | 1998-10-11 | 6.5 KB | 330 lines | [TEXT/CWIE] |
- // CEverythingApp.cp -- application methods
-
- #include "CEverythingApp.h"
-
- #include "CEverythingDoc.h"
- #include "CEverythingData.h"
-
- #include "EverythingCmds.h"
- #include "CModelessButtons.h"
- #include "CModelessCheckboxes.h"
- #include "CModelessRadios.h"
- #include "CModelessText.h"
- #include "CModelessStuff.h"
- #include "CModelessBars.h"
- #include "CAboutDialog.h"
-
- #include <Appearance.h>
- #include <UDesktop.h>
- #include <UEnvironment.h>
- #include <URegistrar.h>
- #include <UScreenPort.h>
- #include <PPobClasses.h>
- #include <PP_Messages.h>
-
- // ---------------------------------------------------------------------------
- // • CEverythingApp
- // ---------------------------------------------------------------------------
- // Default constructor
-
- CEverythingApp::CEverythingApp()
- :LDocApplication()
- {
- UEnvironment::InitEnvironment ();
- if (UEnvironment::HasFeature (env_HasAppearance)) {
- ::RegisterAppearanceClient ();
- }
-
- UScreenPort::Initialize();
-
- RegisterClasses();
-
- SetUpMenus();
-
- // initialize app's data:
-
- }
-
-
- // ---------------------------------------------------------------------------
- // • ~CEverythingApp
- // ---------------------------------------------------------------------------
- // Destructor
- //
-
- CEverythingApp::~CEverythingApp()
- {
- }
-
- // ---------------------------------------------------------------------------
- // • RegisterClasses
- // ---------------------------------------------------------------------------
- //
-
- void
- CEverythingApp::RegisterClasses()
- {
- //x RegisterAllPPClasses();
- // replaced to register only classes that we use.
- // windows know what classes they use
- // so call static functions in each window/dialog,
- }
-
- // ---------------------------------------------------------------------------
- // • SetUpMenus
- // ---------------------------------------------------------------------------
- //
-
- void
- CEverythingApp::SetUpMenus()
- {
-
- }
-
- // ---------------------------------------------------------------------------
- // • StartUp
- // ---------------------------------------------------------------------------
- // The application calls this member function automatically when the application
- // is opened
-
- void
- CEverythingApp::StartUp()
- {
- ObeyCommand(cmd_New, nil);
- }
-
- //----------
- LModelObject*
- CEverythingApp::MakeNewDocument()
- {
- CEverythingDoc *theDoc = new CEverythingDoc(this);
-
- theDoc->newFile();
-
- return theDoc;
- }
-
- //----------
- // called from SendAEOpenDoc in response to Open command
-
- void
- CEverythingApp::OpenDocument(
- FSSpec *inMacFSSpec)
- {
- CEverythingDoc *theDoc = new CEverythingDoc(this);
-
- theDoc->openFile (inMacFSSpec);
- }
-
- //----------
- // called from LDocApplication in response to Open command
-
- void
- CEverythingApp::ChooseDocument()
- {
- SFTypeList typeList;
- short numTypes;
- StandardFileReply macFileReply;
-
- typeList[0] = kFileType;
- numTypes = 1;
-
- UDesktop::Deactivate();
- ::StandardGetFile(nil, numTypes, typeList, &macFileReply);
- UDesktop::Activate();
-
- if (macFileReply.sfGood) {
- SendAEOpenDoc(macFileReply.sfFile);
- }
- }
-
- //----------
- void CEverythingApp::DoModelessButtons ()
- {
- CModelessButtons* dialog = CModelessButtons::CreateModelessButtons (this, cmdModelessButtons);
- }
-
- //----------
- void CEverythingApp::DoModelessCheckboxes ()
- {
- DModelessCheckboxesData* data = new DModelessCheckboxesData;
-
-
- // pre-invoke code
-
- CModelessCheckboxes* dialog = CModelessCheckboxes::CreateModelessCheckboxes (this, cmdModelessCheckboxes, data);
- }
-
- //----------
- void CEverythingApp::DoModelessRadios ()
- {
- DModelessRadiosData* data = new DModelessRadiosData;
-
-
- // pre-invoke code
-
- CModelessRadios* dialog = CModelessRadios::CreateModelessRadios (this, cmdModelessRadios, data);
- }
-
- //----------
- void CEverythingApp::DoModelessText ()
- {
- DModelessTextData* data = new DModelessTextData;
-
-
- // pre-invoke code
-
- CModelessText* dialog = CModelessText::CreateModelessText (this, cmdModelessText, data);
- }
-
- //----------
- void CEverythingApp::DoModelessStuff ()
- {
- DModelessStuffData* data = new DModelessStuffData;
-
-
- // pre-invoke code
-
- CModelessStuff* dialog = CModelessStuff::CreateModelessStuff (this, cmdModelessStuff, data);
- }
-
- //----------
- void CEverythingApp::DoModelessMoreStuff ()
- {
- DModelessBarsData* data = new DModelessBarsData;
-
-
- // pre-invoke code
-
- CModelessBars* dialog = CModelessBars::CreateModelessBars (this, cmdModelessMoreStuff, data);
- }
-
- //----------
- void CEverythingApp::DoInvokeAbout ()
- {
- CAboutDialog* dialog = CAboutDialog::CreateAboutDialog (this, cmdInvokeAbout);
- }
-
- //----------
- void CEverythingApp::FinishInvokeAbout (
- void* ioParam)
- {
- CAboutDialog* dialog = (CAboutDialog *)ioParam;
-
-
- // post-invoke code
-
- delete dialog;
- }
-
- // ---------------------------------------------------------------------------
- // • ObeyCommand
- // ---------------------------------------------------------------------------
- // Respond to commands
-
- Boolean
- CEverythingApp::ObeyCommand(
- CommandT inCommand,
- void* ioParam)
- {
- Boolean cmdHandled = true;
-
- if (inCommand < 0) {
- // modal dialog has finished
-
- switch (-inCommand) {
- case cmdInvokeAbout:
- FinishInvokeAbout (ioParam);
- break;
-
- }
-
- } else {
- switch (inCommand) {
-
- case cmdModelessButtons:
- DoModelessButtons ();
- break;
-
- case cmdModelessCheckboxes:
- DoModelessCheckboxes ();
- break;
-
- case cmdModelessRadios:
- DoModelessRadios ();
- break;
-
- case cmdModelessText:
- DoModelessText ();
- break;
-
- case cmdModelessStuff:
- DoModelessStuff ();
- break;
-
- case cmdModelessMoreStuff:
- DoModelessMoreStuff ();
- break;
-
- case cmdInvokeAbout:
- DoInvokeAbout ();
- break;
-
- default:
- cmdHandled = LDocApplication::ObeyCommand(inCommand, ioParam);
- break;
- }
- }
-
- return cmdHandled;
- }
-
-
- // ---------------------------------------------------------------------------
- // • FindCommandStatus
- // ---------------------------------------------------------------------------
- // Pass back status of a (menu) command
-
- void
- CEverythingApp::FindCommandStatus(
- CommandT inCommand,
- Boolean &outEnabled,
- Boolean &outUsesMark,
- Char16 &outMark,
- Str255 outName)
- {
- outUsesMark = false;
-
- switch (inCommand) {
-
- // +++ Add cases here for the commands you handle
-
- case cmdModelessButtons:
- outEnabled = true;
- break;
- case cmdModelessCheckboxes:
- outEnabled = true;
- break;
- case cmdModelessRadios:
- outEnabled = true;
- break;
- case cmdModelessText:
- outEnabled = true;
- break;
- case cmdModelessStuff:
- outEnabled = true;
- break;
- case cmdModelessMoreStuff:
- outEnabled = true;
- break;
- case cmdInvokeAbout:
- outEnabled = true;
- break;
-
- default:
- LDocApplication::FindCommandStatus(inCommand, outEnabled, outUsesMark,
- outMark, outName);
- break;
- }
- }
-